import javax.swing.JComponent;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Rectangle;

import java.awt.Color;


/**
   
Draws colored squares.
 
*/

public class ColorSquaresComponent extends JComponent

{
   
private String colors;
   
private int wide;
   
private int high;
   private int size;
   
  
 /**
     
 Constructs a component for a drawing made up of colored squares.
      
@param col the color codes of all squares in the drawing.
      
@param w the width of the drawing
      
@param h the height of the drawing
      
@param sideLength the side length of each square
   */
   
public ColorSquaresComponent(String col, int w, int h, int boxSize)
   
{
      
colors = col;
      
wide = w;
      
high = h;
      
size = boxSize;
   
}    
    
   
private Color getSquareColor(char code)
   
{
      
if (code == 'R') return Color.RED;
      
if (code == 'G') return Color.GREEN;
      
if (code == 'B') return Color.BLUE;
     
 if (code == 'C') return Color.CYAN;
      
if (code == 'M') return Color.MAGENTA;
      
if (code == 'Y') return Color.YELLOW;
      
if (code == 'K') return Color.BLACK;
     
 return Color.WHITE;      
   
}
       
   
public void paintComponent(Graphics g)
   
{
      
Graphics2D g2 = (Graphics2D) g;
      
Rectangle box = new Rectangle (0,0, size, size);
      // your work here - draw all of the boxes in the specified color
      
for(int i=0;i<high;i++)
{
         
for(int j=i*size;j<i*size+wide;j++)
{
            
char ch=colors.charAt(j);
            
Color c=getSquareColor(ch);
            
g2.setColor(c);
            
g2.fillRect((j-i*size)*size,i*size,size,size);
      }
      
}
    
}

}